#pragma once

#define JOYSTICKSTATE_DEFAULT_AXIS_MAXIMUM		8
#define	JOYSTICKSTATE_DEFAULT_BUTTON_MAXUMUM	16

class JoystickState
{
public:
	JoystickState();
	~JoystickState();
public:
	static JoystickState	GetState(int index);
public:
	const float				GetAxis(int axis) const;
	const bool				IsButtonDown(int button) const;
	const bool				IsButtonUp(int button) const;
private:
	float					m_fAxes[JOYSTICKSTATE_DEFAULT_AXIS_MAXIMUM];
	unsigned char			m_nButtons[JOYSTICKSTATE_DEFAULT_BUTTON_MAXUMUM];
};